package com.example.adminserivce.Controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.adminserivce.Service.ResourceService;
import com.example.adminserivce.domain.dto.ResourcePage;
import com.example.common.domain.Result;
import com.example.common.domain.pojo.Resources;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/admins/resource")
@Api(value = "管理员端资源文件管理", description = "资源文件管理")
public class ResourceController {
    /**
     * 通过调用老师模块控制器接口获取老师端资源文件信息，从OOS中下载并返回给前端文件路径
     */
    @Autowired
    private ResourceService resourceService;

    /**
     * 获取所有老师端资源文件信息(用分页)
     *
     * @return
     */
    @GetMapping("/getAll")
    public Result<List<Resources>> getResource() {
        return Result.success(resourceService.getResource());
    }

    /**
     * 分页查询资源（使用请求体传递包装类）
     *
     * @param queryWrapper 查询条件包装类
     * @return 分页结果
     */
    @PostMapping("/getAllPage")
    public Result<Page<Resources>> getResourcePage(@RequestBody ResourcePage queryWrapper) {
        Page<Resources> pageResult = resourceService.getResourcePage(queryWrapper);
        return Result.success(pageResult);
    }

    /**
     * 获取指定课程资源文件信息
     *
     * @param courseId
     * @return
     */
    @GetMapping("/getToResource")
    public Result<List<Resources>> getResourceByCourseId(@PathVariable String courseId) {
        return Result.success(resourceService.getResourceByCourseId(courseId));
    }

    /**
     * 删除资源文件信息（可以弄一个垃圾箱）
     *
     * @param id 资源id
     * @return
     */
    @PostMapping
    public Result<Resources> DeleteResource(@PathVariable String id) {
        if (resourceService.DeleteResourceById(id)) {
            return Result.success();
        }
        return Result.error("更新失败");
    }


}
